// 邮箱
export const isEmail = (s) => {
	return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
}

// 手机号
export const isMobile = (s) => {
	return /^1[0-9]{10}$/.test(s)
}

//加密手机号
export const encryptionMobile = (s) => {
	return s.substr(0, 3) + '****' + s.substr(7)
}


// 身份证号
export const isIdCard = (s) => {
	return /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(s)
}

//加密身份证号
export const encryptionIdCard = (s) => {
	return s.substr(0, 1) + '*****************' + s.substr(17)
}

// 电话号码
export const isPhone = (s) => {
	return /(^(\d{3,4}-)?\d{7,8})$|^((1[0-9][0-9]\d{8}$))/.test(s)
}

// 是否url地址
export const isURL = (s) => {
	return /^http[s]?:\/\/.*/.test(s)
}

// 是否是汉字 
export const isChinese = (s) => {
	return /^[\u4e00-\u9fa5]+$/.test(s)
}

// 是否含有特殊字符和emoji表情
export const isCharacters = s => {
	return /^[\u4e00-\u9fa5a-z]+$/gi.test(s)
}

// 社保号
export const isSocialSecurityNo = s => {
	return /^[0-9A-Za-z]{0,50}$/.test(s)
}

// 是否字符串
export const isString = (o) => {
	return Object.prototype.toString.call(o).slice(8, -1) === 'String'
}

// 是否数字
export const isNumber = (o) => {
	return Object.prototype.toString.call(o).slice(8, -1) === 'Number'
}

// 是否boolean
export const isBoolean = (o) => {
	return Object.prototype.toString.call(o).slice(8, -1) === 'Boolean'
}

// 是否函数
export const isFunction = (o) => {
	return Object.prototype.toString.call(o).slice(8, -1) === 'Function'
}

// 是否为null
export const isNull = (o) => {
	return Object.prototype.toString.call(o).slice(8, -1) === 'Null'
}

// 是否undefined
export const isUndefined = (o) => {
	return Object.prototype.toString.call(o).slice(8, -1) === 'Undefined'
}

// 是否对象
export const isObj = (o) => {
	return Object.prototype.toString.call(o).slice(8, -1) === 'Object'
}

// 是否数组
export const isArray = (o) => {
	return Object.prototype.toString.call(o).slice(8, -1) === 'Array'
}

// 是否时间
export const isDate = (o) => {
	return Object.prototype.toString.call(o).slice(8, -1) === 'Date'
}

// 是否正则
export const isRegExp = (o) => {
	return Object.prototype.toString.call(o).slice(8, -1) === 'RegExp'
}

// 是否错误对象

export const isError = (o) => {
	return Object.prototype.toString.call(o).slice(8, -1) === 'Error'
}

// 是否Symbol函数
export const isSymbol = (o) => {
	return Object.prototype.toString.call(o).slice(8, -1) === 'Symbol'
}

// 是否Promise对象
export const isPromise = (o) => {
	return Object.prototype.toString.call(o).slice(8, -1) === 'Promise'
}

// 是否是微信浏览器
export const isWeiXin = () => {
	return ua.match(/microMessenger/i) == 'micromessenger'
}

// 是否是移动端
export const isDeviceMobile = () => {
	return /android|webos|iphone|ipod|balckberry/i.test(ua)
}

// 是否是QQ浏览器
export const isQQBrowser = () => {
	return !!ua.match(/mqqbrowser|qzone|qqbrowser|qbwebviewtype/i)
}

// 是否是爬虫
export const isSpider = () => {
	return /adsbot|googlebot|bingbot|msnbot|yandexbot|baidubot|robot|careerbot|seznambot|bot|baiduspider|jikespider|symantecspider|scannerlwebcrawler|crawler|360spider|sosospider|sogou web sprider|sogou orion spider/
		.test(ua)
}

// 是否ios
export const isIos = () => {
	var u = navigator.userAgent;
	if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) { //安卓手机
		return false
	} else if (u.indexOf('iPhone') > -1) { //苹果手机
		return true
	} else if (u.indexOf('iPad') > -1) { //iPad
		return false
	} else if (u.indexOf('Windows Phone') > -1) { //winphone手机
		return false
	} else {
		return false
	}
}

// 是否为PC端
export const isPC = () => {
	var userAgentInfo = navigator.userAgent;
	var Agents = ["Android", "iPhone",
		"SymbianOS", "Windows Phone",
		"iPad", "iPod"
	];
	var flag = true;
	for (var v = 0; v < Agents.length; v++) {
		if (userAgentInfo.indexOf(Agents[v]) > 0) {
			flag = false;
			break;
		}
	}
	return flag;
}
